home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 37
/
Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso
/
Aminet
/
dev
/
basic
/
clockita.lha
/
OrologioSource.text
< prev
Wrap
Text File
|
2000-02-22
|
10KB
|
403 lines
;-> Orologio by Stefano Regattin
;d> 9 ottobre 1998 da Clock
;m> 10,11,16,17,19,24,29 ottobre 1998
;m> 4,6 novembre 1998
;m> 13,14,23 dicembre 1998
;m> 3 gennaio 1999
;m> 9,12 marzo 1999
;m> 25,26 settembre 1999
;m> 1,2,3,5,6,7,8,9,10,11,22 febbraio 2000
;------------------------------------------
#HaiCambiatoLeDimensioniDellaFinestra=2
#HaiPremutoUnTastoDelTopo=8
#HaiRilasciatoUnGadget=$40
#HaiChiusoLaFinestra=$200
DEFTYPE .l RastPortFinestra
DEFTYPE .b AltezzaFontRegistrata,NumeroToolType,ToolTypeScritti
DEFTYPE .w
AltezzaFont.b=13
Statement ApriFinestraZero{}
SHARED LunXFinestraZero
SHARED LunYFinestraZero
SHARED PosXFinestraZero
SHARED PosYFinestraZero
SHARED RastPortFinestra
Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$140F,"",1,2
WTitle "Orologio","by Stefano Regattin e-mail>StefanoRegattin@lycosmail.com"
RastPortFinestra=RastPort(0)
WindowFont 0
End Statement
Statement LeggiToolType{}
SHARED FontOrologio$
SHARED FontOrologioRegistrato$
SHARED IconaOrologio$
SHARED AltezzaFont
SHARED AltezzaFontRegistrata
SHARED PosXFinestraZero
SHARED PosXFinestraZeroRegistrata
SHARED PosYFinestraZero
SHARED PosYFinestraZeroRegistrata
ToolTypeLetti.l=GetIconObject(IconaOrologio$)
If ToolTypeLetti>0
NuovoFontOrologio$=FindToolValue("FONTNAME")
NuovaAltezzaFont$=FindToolValue("FONTSIZE")
NuovaPosXFinestraZero$=FindToolValue("WINDOWX")
NuovaPosYFinestraZero$=FindToolValue("WINDOWY")
If NuovoFontOrologio$<>""
FontOrologioRegistrato$=NuovoFontOrologio$
FontOrologio$=NuovoFontOrologio$
EndIf
If NuovaAltezzaFont$<>""
AltezzaFontRegistrata=Val(NuovaAltezzaFont$)
AltezzaFont=Val(NuovaAltezzaFont$)
EndIf
If NuovaPosXFinestraZero$<>""
PosXFinestraZeroRegistrata=Val(NuovaPosXFinestraZero$)
PosXFinestraZero=Val(NuovaPosXFinestraZero$)
EndIf
If NuovaPosYFinestraZero$<>""
PosYFinestraZeroRegistrata=Val(NuovaPosYFinestraZero$)
PosYFinestraZero=Val(NuovaPosYFinestraZero$)
EndIf
FreeIconObject
EndIf
End Statement
Statement ScriviToolType{}
SHARED FontOrologio$
SHARED FontOrologioRegistrato$
SHARED IconaOrologio$
SHARED AltezzaFont
SHARED AltezzaFontRegistrata
SHARED PosXFinestraZero
SHARED PosXFinestraZeroRegistrata
SHARED PosYFinestraZero
SHARED PosYFinestraZeroRegistrata
SHARED ToolTypeScritti
ToolTypeLetti.l=GetIconObject(IconaOrologio$)
If ToolTypeLetti>0
If FindToolType("DONOTWAIT")=False Then NewToolType "DONOTWAIT",""
If FindToolType("FONTNAME")=True
SetToolValue "FONTNAME",FontOrologio$
Else
NewToolType "FONTNAME",FontOrologio$
EndIf
If FindToolType("FONTSIZE")=True
SetToolValue "FONTSIZE",Str$(AltezzaFont)
Else
NewToolType "FONTSIZE",Str$(AltezzaFont)
EndIf
If FindToolType("WINDOWX")=True
SetToolValue "WINDOWX",Str$(PosXFinestraZero)
Else
NewToolType "WINDOWX",Str$(PosXFinestraZero)
EndIf
If FindToolType("WINDOWY")=True
SetToolValue "WINDOWY",Str$(PosYFinestraZero)
Else
NewToolType "WINDOWY",Str$(PosYFinestraZero)
EndIf
ToolTypeScritti=PutIconObject(IconaOrologio$)
If ToolTypeScritti=True
FontOrologioRegistrato$=FontOrologio$
AltezzaFontRegistrata=AltezzaFont
PosXFinestraZeroRegistrata=PosXFinestraZero
PosYFinestraZeroRegistrata=PosYFinestraZero
EndIf
FreeIconObject
EndIf
End Statement
Statement CercaFont{}
SHARED FontOrologio$
SHARED AltezzaFont
NEWTYPE .FontInfo
Nome$
Altezza.w
Stile.b
Segnalatori
PennaUno
PennaDue
ModoDisegno
Pad
End NEWTYPE
*Font.FontInfo=ASLFontRequest(0)
If *Font<>0
FontOrologio$=*Font\Nome
AltezzaFont=*Font\Altezza
EndIf
End Statement
Statement Impostazioni{}
SHARED OraAllarme$
SHARED OraDiOggi$
SHARED FontOrologio$
SHARED FontOrologioRegistrato$
SHARED AltezzaFont
SHARED AltezzaFontRegistrata
SHARED LunXSchermo
SHARED PosXFinestraZero
SHARED PosXFinestraZeroRegistrata
SHARED PosYFinestraZero
SHARED PosYFinestraZeroRegistrata
SHARED StatoAllarme
SHARED ToolTypeScritti
StringGadget 0,1,1,0,0,6,6*8
StringGadget 0,1,14,0,1,25,106
StringGadget 0,75,1,0,2,4,4*8
TextGadget 0,58,1,1,3,"A"
StringGadget 0,9,27,0,4,5,5*8
StringGadget 0,67,27,0,5,5,5*8
TextGadget 0,3,40,1,6,"*** Salva ***"
PosXFinestraZero=WindowX-WLeftOff
PosYFinestraZero=WindowY-WTopOff
PosXFinestraUno=WindowX
PosYFinestraUno=WindowY
LunXFinestraUno=124
LunYFinestraUno=74
If PosXFinestraUno+124>LunXSchermo Then PosXFinestraUno=LunXSchermo-124
If PosYFinestraUno+74>WBHeight Then PosYFinestraUno=WBHeight-74
Window 1,PosXFinestraUno,PosYFinestraUno,LunXFinestraUno,LunYFinestraUno,$140A,"",1,2,0
WTitle "Impostazioni","Imposta le variabili dell'orologio"
WindowFont 1
WLocate 0,29:Print "X"
WLocate 58,29:Print"Y"
If OraAllarme$="" Then OraAllarme$=UnLeft$(OraDiOggi$,3)
Repeat
SetString 0,0,OraAllarme$
Redraw 1,0
SetString 0,1,FontOrologio$
Redraw 1,1
SetString 0,2,Str$(AltezzaFont)
Redraw 1,2
SetString 0,4,Str$(PosXFinestraZero)
Redraw 1,4
SetString 0,5,Str$(PosYFinestraZero)
Redraw 1,5
ValoriCambiati.b=False
If FontOrologio$<>FontOrologioRegistrato$ Then ValoriCambiati=True
If AltezzaFont<>AltezzaFontRegistrata Then ValoriCambiati=True
If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
If ValoriCambiati=True Then Enable 0,6 Else Toggle 0,6,Off:Disable 0,6
Redraw 1,6
EventoFinestra.l=WaitEvent
If EventoFinestra=#HaiRilasciatoUnGadget
If GadgetHit<>3 AND GadgetHit<>6 Then ActivateString 1,GadgetHit
Select GadgetHit
Case 0
OraAllarme$=StringText$(0,0)
Case 1
NuovoFontOrologio$=StringText$(0,1)
If NuovoFontOrologio$="" Then CercaFont{}
If Right$(NuovoFontOrologio$,5)<>".font" Then NuovoFontOrologio$+".font"
If Len(NuovoFontOrologio$)>0
If Exists("FONTS:"+NuovoFontOrologio$)
FontOrologio$=NuovoFontOrologio$
EndIf
EndIf
Case 2
AltezzaFont=Val(StringText$(0,2))
AltezzaFont=Max(AltezzaFont,6)
Case 3
StatoAllarme=GadgetStatus(0,3)
Case 4
PosXFinestraZero=Val(StringText$(0,4))
Case 5
PosYFinestraZero=Val(StringText$(0,5))
Case 6
ScriviToolType{}
If ToolTypeScritti=True
Toggle 0,6,Off
Disable 0,6
Redraw 1,6
Else
Toggle 0,6,On
EndIf
End Select
EndIf
Until EventoFinestra=#HaiChiusoLaFinestra
CloseWindow 1
Use Window 0
WindowFont 0
End Statement
Statement DataDiOggi{}
SHARED Allarme$
SHARED DataDiOggi$
SHARED LunghezzaDataDiOggi
SHARED LunghezzaScrittaAllarme
SHARED RastPortFinestra
Select WeekDay
Case 0
GiornoDellaSettimana$="Dom"
Case 1
GiornoDellaSettimana$="Lun"
Case 2
GiornoDellaSettimana$="Mar"
Case 3
GiornoDellaSettimana$="Mer"
Case 4
GiornoDellaSettimana$="Gio"
Case 5
GiornoDellaSettimana$="Ven"
Case 6
GiornoDellaSettimana$="Sab"
End Select
Giorno$=Str$(Days)
Select Months
Case 1
Mese$="gennaio"
Case 2
Mese$="febbraio"
Case 3
Mese$="marzo"
Case 4
Mese$="aprile"
Case 5
Mese$="maggio"
Case 6
Mese$="giugno"
Case 7
Mese$="luglio"
Case 8
Mese$="agosto"
Case 9
Mese$="settembre"
Case 10
Mese$="ottobre"
Case 11
Mese$="novembre"
Case 12
Mese$="dicembre"
End Select
Anno$=Str$(Years)
DataDiOggi$=" "+GiornoDellaSettimana$+", "+Giorno$+" "+Mese$+" "+Anno$+" "
LunghezzaDataDiOggi.w=TextLength_(RastPortFinestra,&DataDiOggi$,Len(DataDiOggi$))
End Statement
WBStartup
AltezzaFontSchermo.b=8
OpenFontPrefs
AltezzaFontSchermo.b=DefaultFontHeight(2)
CloseFontPrefs
WbToScreen 0
IndirizzoSchermo.l=Peek.l(Addr Screen(0))
LunXSchermo=Peek.w(IndirizzoSchermo+12)
FontOrologio$="Data70.font"
PosXFinestraZero=0
PosYFinestraZero=AltezzaFontSchermo+3
IconaOrologio$=ProgPath$+".info"
LeggiToolType{}
LoadFont 0,FontOrologio$,AltezzaFont
LoadFont 1,"topaz.font",8
LunXFinestraZero=70
LunYFinestraZero=30
Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$140F,"",1,2
RastPortFinestra=RastPort(0)
WindowFont 0
DataDiOggi$=Date$(SystemDate)
DataDiOggi{}
LunXFinestraZero=22+LunghezzaDataDiOggi
LunYFinestraZero=WTopOff+AltezzaFont*2+6
ApriFinestraZero{}
RaggioCerchio=AltezzaFont/2
Repeat
EventoFinestra.l=Event
If EventoFinestra=#HaiCambiatoLeDimensioniDellaFinestra
AltezzaFont=InnerHeight/2
RaggioMassimoCerchio=AltezzaFont/2
LoadFont 0,FontOrologio$,AltezzaFont
WindowFont 0
WCls
EndIf
If EventoFinestra=#HaiPremutoUnTastoDelTopo
PrecedenteFontOrologio$=FontOrologio$
PrecedenteAltezzaFont.b=AltezzaFont
Impostazioni{}
Use Window 0
FinestraZeroAggiornata.b=False
If FontOrologio$<>PrecedenteFontOrologio$ OR AltezzaFont<>PrecedenteAltezzaFont
LoadFont 0,FontOrologio$,AltezzaFont
WindowFont 0
DataDiOggi{}
LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+18
LunYFinestraZero=WTopOff+AltezzaFont*2+6
If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo
PosXFinestraZero=LunXSchermo-LunXFinestraZero
EndIf
If PosYFinestraZero+LunYFinestraZero-1>WBHeight
PosYFinestraZero=WBHeight-LunYFinestraZero
EndIf
CloseWindow 0
ApriFinestraZero{}
FinestraZeroAggiornata=True
EndIf
If FinestraZeroAggiornata=False
If PosXFinestraZero<>WindowX-WLeftOff OR PosYFinestraZero<>WindowY-WTopOff
If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo
PosXFinestraZero=LunXSchermo-LunXFinestraZero
EndIf
If PosYFinestraZero+LunYFinestraZero-1>WBHeight
PosYFinestraZero=WBHeight-LunYFinestraZero
EndIf
CloseWindow 0
ApriFinestraZero{}
EndIf
EndIf
RaggioMassimoCerchio=AltezzaFont/2
RaggioCerchio=RaggioMassimoCerchio
EndIf
DataDiOggi$=Date$(SystemDate)
DataDiOggi{}
XData.w=(InnerWidth-LunghezzaDataDiOggi)/2
WLocate XData,0:Print DataDiOggi$
OraDiOggi$=Str$(Hours/10)
OraDiOggi$+Str$(Hours MOD 10)+":"
OraDiOggi$+Str$(Mins/10)
OraDiOggi$+Str$(Mins MOD 10)+":"
OraDiOggi$+Str$(Secs/10)
OraDiOggi$+Str$(Secs MOD 10)
LunghezzaOraDiOggi.w=TextLength_(RastPortFinestra,&OraDiOggi$,Len(OraDiOggi$))
XOra.w=(InnerWidth-LunghezzaOraDiOggi)/2-1
WLocate XOra,AltezzaFont:Print " ",OraDiOggi$," "
If StatoAllarme=True
If Left$(OraDiOggi$,5)=OraAllarme$ Then BeepScreen 0
XAllarme=InnerWidth-1-AltezzaFont/2
YAllarme=InnerHeight-1-AltezzaFont/2
WCircle XAllarme,YAllarme,RaggioCerchio,1
EndIf
Delay_ 50
If StatoAllarme=True
WCircle XAllarme,YAllarme,RaggioCerchio,0
RaggioCerchio+1
If RaggioCerchio>RaggioMassimoCerchio Then RaggioCerchio=1
EndIf
Until EventoFinestra=#HaiChiusoLaFinestra
End